// pages/films/player.js
Page({
	play(e){ //点击某一集视频直播播放
		let listIndex=e.target.dataset.index //点击剧集的索引号
		if(listIndex==null)return //说明没有点击到某一集上面
		let sourceIndex=this.data.sourceIndex //当前源的索引号
		let change={playingIndex: sourceIndex} //记录有变化的数据
		change[`sources[${sourceIndex}].list[${listIndex}].selected`]=true //点击的剧集处于选中的状态
		change[`sources[${sourceIndex}].listIndex`]=listIndex //点击的剧集处于选中的状态
		this.setData(change) //更新页面数据
	},
    sources(e){ //点击视频源
		console.log(e);
		let sourceIndex=e.target.dataset.index //点击源的索引号
		let oldIndex=this.data.sourceIndex //上次点击的源的索引号
		if(oldIndex==sourceIndex)return //点击是同一个源，不用处理，直接返回
		let change={sourceIndex} //记录有变化的数据
		if(oldIndex!=null)change[`sources[${oldIndex}].selected`]=false //取消原来源的选择状态
		change[`sources[${sourceIndex}].selected`]=true //设置新点击源的现在状态
		this.setData(change) //更新页面数据
	},
    async onLoad(e){
		console.log(e)
        let index=parseInt(e.index) //点击列表的索引号
	//数组中第一个元素为首页，最后一个元素为当前页面 [ main, films/index, films/player]
    let pages=getCurrentPages() //获取当前页面栈
		let pp=pages[pages.length-2] //列表页面对象
        console.log(pp.data) //获取列表页面的数据
        
        let menu=pp.data.menus[pp.data.menuIndex] //当前菜单
		let type=menu.types[menu.typeIndex] //当前类型
		let video=type.list[index] //要播放的视频
        console.log(video) 
        let url=`${pp.host}${video.url}` //播放视频页面的网址
		let app=getApp() //获取小程序对象
		let html=await app.request({url}) //获取播放页面的html文本
        //console.log(html)
        let r, jj, regex=/video-info-content">(.+?)<\/div>/s //获取简介的正则表达式
		if(r=regex.exec(html)){
            jj='　　'+r[1].replace(/<\/?(br|p|div)[^>]*>|　+/g,'\n')
            .replace(/<[^>]*>/g,'')
            .replace(/&nbsp;/g,' ')
            .replace(/\s*\n\s*/g, '\n　　')
            .trim()
		}
		let sources=[] //存放数据源
		regex=/value="([^"]+)/g //查找数据源的正则表达式
		while(r=regex.exec(html)){
			sources.push({ //保存数据源对象
				name: r[1],
			})
        }
        regex=/sort-item">(.+?)<\/div>/gs //每个源都有多集的信息，信息间的定界符
        let ind=-1
        while(r=regex.exec(html)){
            let r2, re=/title="([^"]+)" href="([^"]+)/g, list=[]
            while(r2=re.exec(r[1])){
                list.push({
                    name: r2[1], //每一集的名称
                    url: r2[2], //每一集的地址
                })
            }
            sources[++ind].list=list
        }
		this.setData({
			title: video.title,
            jj,
            sources,
		})
	},
})